// 产品相关 API 封装：商品列表
import client from './client'

// 获取商品列表：GET /api/product/list
// 说明：无需请求体，支持通过 query params 传递分页与筛选条件（如 name、categoryId、status）
// 返回结构示例：{ timestamp, code, message, data: { records: [], total: number } }
export async function getProductList(params = {}) {
  // 使用 axios 的 params 作为查询字符串发送
  const res = await client.get('/product/list', { params })
  return res
}

export async function getProductDetail(productId) {
  // 获取商品详情：GET /api/product/{id}
  // 说明：路径参数为商品ID，无需请求体
  const res = await client.get(`/product/${productId}`)
  return res
}

// 上传文件（图片）：POST /api/file/upload
// 入参：File 对象；返回后端统一结构 { code, message, data }
// 约定：data 为图片的完整可访问 URL（可能包含签名参数），前端需直接回显
export async function uploadFile(file) {
  const fd = new FormData()
  fd.append('file', file)
  const res = await client.post('/file/upload', fd, { headers: { 'Content-Type': 'multipart/form-data' } })
  return res
}

// 修改商品：PUT /api/product/update
// 入参：商品 JSON（包含 id、name、skuCode、categoryId、sellingPrice、stock、status、mainImageUrl、detailImageUrls 等）
export async function updateProduct(payload) {
  const res = await client.put('/product/update', payload)
  return res
}